/**
 * Copyright (C), 2015-2019, XXX有限公司
 * FileName: MeiPo
 * Author:   zhouheng
 * Date:     2019/5/25 14:03
 * Description:
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.zhouh.patterns.com.zhouh.structure.proxy.jdk;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

/**
 * 〈一句话功能简述〉<br> 
 * 〈〉
 *
 * @author zhouheng
 * @create 2019/5/25
 * @since 1.0.0
 */
public class MeiPo implements InvocationHandler {
    public Person taget;

    public Object getInstance(Person target) throws Exception{
        this.taget = target;
        Class clazz = target.getClass();

        return Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), this);
    }


    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

        System.out.println("我是媒婆：" + "得给你找个异性才行");
        System.out.println("开始进行海选...");
        System.out.println("------------");

        //调用的时候
        method.invoke(this.taget, args);
        System.out.println("------------");
        System.out.println("如果合适的话，就准备办事");

        return null;
    }
}